package com.bst.common.vo;

import com.bst.common.utils.StringUtils;

import java.io.Serializable;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class DwQueryParamVO implements Serializable {

    private String startDay;
    private String endDay;
    private String dateType="D"; // D天，M月，Q季, Y年
    private String tableName; //DW表
    private String joinTables=""; //关联表，主要关联的是维度表
    private String dateFld="ID_DIM_DAY_OCCUR";//日期字段，默认为发生日期
    private String dbType;
    private Boolean fgDetail=true;
    private Boolean fgTb=false; //同比
    private Boolean fgHb=false; //环比
    private List<DimVO> dimVOList; //维度集合
    private String fgYearTotal; //年累计标志（作用于天）
    private Integer pageNum;
    private Integer pageSize=50;
    private Boolean fgGroupByDate=true;//是否需要根据时间分组
    private Boolean fgDistinct=false;
    /** 通用对照逻辑  **/
    private String cdComps;
    private String orderBy;
    private String groupBy;
    private String whereSql;
    private String resultOrderBy; //对最终的结果排序
    private String fileName; //excel导出文件名

    private Map<String,List<DimVO>> otherDimVOMap = new HashMap<>(); //

    public String getDateFld() {
        return dateFld;
    }

    public void setDateFld(String dateFld) {
        this.dateFld = dateFld;
    }

    public Map<String, List<DimVO>> getOtherDimVOMap() {
        return otherDimVOMap;
    }

    public void setOtherDimVOMap(Map<String, List<DimVO>> otherDimVOMap) {
        this.otherDimVOMap = otherDimVOMap;
    }

    public String getJoinTables() {
        return joinTables;
    }

    public void setJoinTables(String joinTables) {
        this.joinTables = joinTables;
    }

    public Boolean getFgDistinct() {
        return fgDistinct;
    }

    public void setFgDistinct(Boolean fgDistinct) {
        this.fgDistinct = fgDistinct;
    }

    public String getDbType() {
        return dbType;
    }

    public void setDbType(String dbType) {
        this.dbType = dbType;
    }

    public Boolean getFgDetail() {
        return fgDetail;
    }

    public void setFgDetail(Boolean fgDetail) {
        this.fgDetail = fgDetail;
    }

    public String getResultOrderBy() {
        return resultOrderBy;
    }

    public void setResultOrderBy(String resultOrderBy) {
        this.resultOrderBy = resultOrderBy;
    }

    public String getFileName() {
        return fileName;
    }

    public void setFileName(String fileName) {
        this.fileName = fileName;
    }

    public Boolean getFgGroupByDate() {
        return fgGroupByDate;
    }

    public void setFgGroupByDate(Boolean fgGroupByDate) {
        this.fgGroupByDate = fgGroupByDate;
    }

    public String getCdComps() {
        return cdComps;
    }

    public void setCdComps(String cdComps) {
        this.cdComps = cdComps;
    }

    public Integer getPageNum() {
        return pageNum;
    }

    public void setPageNum(Integer pageNum) {
        this.pageNum = pageNum;
    }

    public Integer getPageSize() {
        return pageSize;
    }

    public void setPageSize(Integer pageSize) {
        this.pageSize = pageSize;
    }

    public String getDateType() {
        return dateType;
    }

    public void setDateType(String dateType) {
        this.dateType = dateType;
    }

    public String getTableName() {
        return tableName;
    }

    public void setTableName(String tableName) {
        this.tableName = tableName;
    }

    public Boolean getFgTb() {
        return fgTb;
    }

    public void setFgTb(Boolean fgTb) {
        this.fgTb = fgTb;
    }

    public Boolean getFgHb() {
        return fgHb;
    }

    public void setFgHb(Boolean fgHb) {
        this.fgHb = fgHb;
    }

    public List<DimVO> getDimVOList() {
        return dimVOList;
    }

    public void setDimVOList(List<DimVO> dimVOList) {
        this.dimVOList = dimVOList;
    }

    public String getFgYearTotal() {
        return fgYearTotal;
    }

    public void setFgYearTotal(String fgYearTotal) {
        this.fgYearTotal = fgYearTotal;
    }

    public String getStartDay() {
        return startDay;
    }

    public void setStartDay(String startDay) {
        this.startDay = startDay;
    }

    public void setEndDay(String endDay) {
        this.endDay = endDay;
    }

    public String getGroupBy() {
        return groupBy;
    }

    public void setGroupBy(String groupBy) {
        this.groupBy = groupBy;
    }

    public String getWhereSql() {
        return whereSql;
    }

    public void setWhereSql(String whereSql) {
        this.whereSql = whereSql;
    }

    public String getEndDay() {
        return endDay;
    }

    public String getOrderBy() {
        return orderBy;
    }

    public void setOrderBy(String orderBy) {
        this.orderBy = orderBy;
    }
}
